#include <iostream>

namespace zzz
{
    class Task
    {
    public:
        Task(int x, int y) : _x(x), _y(y)
        {
        }
        int Excute()
        {
            return _x + _y;
        }

    private:
        int _x;
        int _y;
    };

    class ThreadData
    {
    public:
        ThreadData(int x, int y, std::string name)
            : _t(x, y), _thname(name)
        {
        }
        int Excute()
        {
            return _t.Excute();
        }
        std::string GetName()
        {
            return _thname;
        }

    private:
        std::string _thname;
        Task _t;
    };

    class ThreadResult
    {
    public:
        ThreadResult(int retval, std::string name)
            : _ret(retval), _thname(name)
        {
        }
        void Print()
        {
            std::cout << _thname << ":" << _ret << std::endl;
        }

    private:
        int _ret;
        std::string _thname;
    };
}